home *** CD-ROM | disk | FTP | other *** search
/ Day Cry / Day Cry CD.bin / oh_towns / taropyon / he386 / he386.cci < prev    next >
Text File  |  1994-09-20  |  17KB  |  964 lines

  1. # 1 "main.c"
  2.  
  3. # 1 "main.c"
  4. # 2 "midilib.c"
  5. char _OUT_OF_STRING_SPACE[24] = "Out of string space!";
  6. # 8 "midilib.c"
  7. int make_sysEx( char *buf, unsigned int siz, unsigned char *dat )
  8. {
  9. int i, len;
  10. char *p, tmp[8];
  11.  
  12. p = buf;
  13. strcpy( p, "@EXCL(");
  14. p += 6;
  15. for ( i = 1; i < siz - 1; ++i )
  16. {
  17. sprintf(tmp, "%d", dat[i] & 0xFF );
  18. strcpy(p,tmp); p += strlen(tmp);
  19. if ( i < siz - 2 )
  20. {
  21. *p = ',';
  22. ++p;
  23. }
  24. }
  25. *p = ')'; ++p;
  26. *p = '\0';
  27.  
  28. return (strlen(buf));
  29. }
  30. # 2 "gm.c"
  31. char *GmFuncTbl[2] =
  32. {
  33. "exGM_systemOn" ,
  34. (0)
  35. };
  36.  
  37. int GM_macroInit( char *sqr )
  38. {
  39. int i;
  40.  
  41. for ( i = 0; GmFuncTbl[i] != (0); ++i )
  42. MMac_extDefine( sqr, GmFuncTbl[i], GmFuncTbl[i], (4), (0) );
  43. MMac_extDefine( sqr, "_GM_MACRO_DEFINED", "", (0) , (0) );
  44. return ((0));
  45. }
  46. # 25 "gm.c"
  47. int exGM_systemOn( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  48. {
  49. char dat[32], tmp[256];
  50. unsigned siz;
  51.  
  52. dat[0] = 0xF0;
  53. dat[1] = 0x7E;
  54. dat[2] = 0x7F;
  55. dat[3] = 0x09;
  56. dat[4] = 0x01;
  57. dat[5] = 0xF7;
  58. siz = 6;
  59. siz = make_sysEx(tmp, siz, dat );
  60. if ( siz >= bufSiz )
  61. {
  62. MM_setErrMsg(sqr,_OUT_OF_STRING_SPACE);
  63. return ((-1));
  64. }
  65. memcpy( buf, tmp, siz );
  66. return (siz);
  67. }
  68. # 8 "gs.c"
  69. int GsDeviceID = 16;
  70.  
  71. char *GsFuncTbl[32] =
  72. {
  73. "GS_setDeviceNumber" ,
  74. "sysEx_gs" ,
  75. "sysEx_sc55" ,
  76.  
  77. "exGs_reset" ,
  78. "exGs_masterVolume" ,
  79. "exGs_partialReserve",
  80. "exGs_reverbMacro" ,
  81. "exGs_reverbPara" ,
  82. "exGs_chorusMacro" ,
  83. "exGs_chorusPara" ,
  84.  
  85. "exGs_rxChannel" ,
  86. "exGs_assignMode" ,
  87. "exGs_rymMap" ,
  88.  
  89. "exGs_mod" ,
  90. "exGs_bend" ,
  91. "exGs_caf" ,
  92. "exGs_paf" ,
  93. "exGs_cc1number" ,
  94. "exGs_cc2number" ,
  95. "exGs_cc1control" ,
  96. "exGs_cc2control" ,
  97.  
  98. "exSC55_msgSet" ,
  99. "exSC55_dotSet" ,
  100. "SC55_initDotBuffer" ,
  101. "SC55_setDotBuffer" ,
  102. "exSC55_dotBuffer" ,
  103.  
  104. (0)
  105. };
  106.  
  107. int GS_macroInit( char *sqr )
  108. {
  109. int i;
  110.  
  111. GsDeviceID = 17 - 1;
  112. for ( i = 0; GsFuncTbl[i] != (0); ++i )
  113. MMac_extDefine( sqr, GsFuncTbl[i], GsFuncTbl[i], (4), (0) );
  114. MMac_extDefine( sqr, "_GS_MACRO_DEFINED", "", (0) , (0) );
  115. return ((0));
  116. }
  117. # 64 "gs.c"
  118. int GS_setDeviceNumber( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  119. {
  120. int n;
  121.  
  122. if ( argc < 1 )
  123. {
  124. _ERR: MM_setErrMsg(sqr,"[GS] device number error!");
  125. return ((-1));
  126. }
  127. n = atoi(argv[0]) - 1;
  128. if ( n < 1 || n > 32 )
  129. goto _ERR;
  130. GsDeviceID = n - 1;
  131. return (0);
  132. }
  133. # 84 "gs.c"
  134. int roland_excl( unsigned char *buf, int deviceID, int modelID, unsigned int adr, unsigned int siz, unsigned char *dat )
  135. {
  136. int i, sum;
  137.  
  138. buf[0] = 0xF0;
  139. buf[1] = 0x41;
  140. buf[2] = deviceID;
  141. buf[3] = modelID;
  142. buf[4] = 0x12;
  143. buf[5] = (adr>>16); buf[6] = (adr>>8); buf[7] = (adr);
  144. sum = buf[5] + buf[6] + buf[7];
  145. for ( i = 0; i < siz; ++i )
  146. {
  147. buf[8+i] = dat[i];
  148. sum += dat[i];
  149. }
  150. sum = (0x80 - (sum & 0x7F)) & 0x7F;
  151. buf[8+siz] = sum;
  152. buf[9+siz] = 0xF7;
  153.  
  154. return (siz + 10);
  155. }
  156.  
  157. int gs_genMML( char *sqr, unsigned int bufSiz, char *buf, unsigned int adr, unsigned int siz, char *dat)
  158. {
  159. int ret;
  160. char excl[256], tmp[1024];
  161.  
  162. ret = roland_excl( excl, GsDeviceID, (0x42), adr, siz, dat );
  163. ret = make_sysEx( tmp, ret, excl );
  164. if ( ret >= bufSiz )
  165. {
  166. MM_setErrMsg(sqr,_OUT_OF_STRING_SPACE);
  167. return ((-1));
  168. }
  169. memcpy( buf, tmp, ret );
  170. return (ret);
  171. }
  172.  
  173. int sc55_genMML( char *sqr, unsigned int bufSiz, char *buf, unsigned int adr, unsigned int siz, char *dat)
  174. {
  175. int ret;
  176. char excl[256], tmp[1024];
  177.  
  178. ret = roland_excl( excl, GsDeviceID, (0x45), adr, siz, dat );
  179. ret = make_sysEx( tmp, ret, excl );
  180. if ( ret >= bufSiz )
  181. {
  182. MM_setErrMsg(sqr,_OUT_OF_STRING_SPACE);
  183. return ((-1));
  184. }
  185. memcpy( buf, tmp, ret );
  186. return (ret);
  187. }
  188. # 146 "gs.c"
  189. int sysEx_gs( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  190. {
  191. char dat[128];
  192. unsigned int adr, siz;
  193. int i, ret;
  194.  
  195. if ( argc < 3 )
  196. {
  197. MM_setErrMsg(sqr,"GS system exclusive error!");
  198. return ((-1));
  199. }
  200. sscanf(argv[0],"%x",&adr);
  201. siz = atoi(argv[1]);
  202. if ( siz < 1 || argc < 2 + siz )
  203. return ((-1));
  204. for ( i = 0; i < siz; ++i )
  205. dat[i] = atoi(argv[2+i]);
  206.  
  207. return gs_genMML( sqr, bufSiz, buf, adr, siz, dat );
  208. }
  209. # 173 "gs.c"
  210. int sysEx_sc55( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  211. {
  212. char dat[128];
  213. unsigned int adr, siz;
  214. int i, ret;
  215.  
  216. if ( argc < 3 )
  217. {
  218. MM_setErrMsg(sqr,"SC-55 system exclusive error!");
  219. return ((-1));
  220. }
  221. sscanf(argv[0],"%x",&adr);
  222. siz = atoi(argv[1]);
  223. if ( siz < 1 || argc < 2 + siz )
  224. return ((-1));
  225. for ( i = 0; i < siz; ++i )
  226. dat[i] = atoi(argv[2+i]);
  227.  
  228. return sc55_genMML( sqr, bufSiz, buf, adr, siz, dat );
  229. }
  230. # 198 "gs.c"
  231. int exGs_reset( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  232. {
  233. char dat[4];
  234. int ret;
  235.  
  236. if ( argc != 0 )
  237. {
  238. MM_setErrMsg(sqr,"[GS] \"reset\" error!");
  239. return((-1));
  240. }
  241. dat[0] = 0x00;
  242. return gs_genMML( sqr, bufSiz, buf, 0x40007F, 1, dat );
  243. }
  244. # 219 "gs.c"
  245. int exGs_masterVolume( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  246. {
  247. char dat[4];
  248. int ret;
  249.  
  250. if ( argc != 1 )
  251. {
  252. MM_setErrMsg(sqr,"[GS] Master volume error!");
  253. return((-1));
  254. }
  255.  
  256. dat[0] = atoi(argv[0]);
  257. return gs_genMML( sqr, bufSiz, buf, 0x400004, 1, dat );
  258. }
  259. # 240 "gs.c"
  260. int exGs_partialReserve( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  261. {
  262. int i;
  263. char dat[32];
  264. int ret;
  265.  
  266. if ( argc != 16 )
  267. {
  268. MM_setErrMsg(sqr,"[GS] Partial reserve error!");
  269. return((-1));
  270. }
  271.  
  272. for ( i = 0; i < 16; ++i )
  273. dat[i] = atoi(argv[i]);
  274. return gs_genMML( sqr, bufSiz, buf, 0x400110, 16, dat );
  275. }
  276. # 263 "gs.c"
  277. int exGs_reverbMacro( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  278. {
  279. char dat[4];
  280. int ret;
  281.  
  282. if ( argc != 1 )
  283. {
  284. MM_setErrMsg(sqr,"[GS] Reverb macro error!");
  285. return((-1));
  286. }
  287.  
  288. dat[0] = atoi(argv[0]);
  289. return gs_genMML( sqr, bufSiz, buf, 0x400130, 1, dat );
  290. }
  291. # 284 "gs.c"
  292. int exGs_reverbPara( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  293. {
  294. int i;
  295. char dat[8];
  296. int ret;
  297.  
  298. if ( argc != 6 )
  299. {
  300. MM_setErrMsg(sqr,"[GS] Reverb parameter error!");
  301. return((-1));
  302. }
  303.  
  304. for ( i = 0; i < 6; ++i )
  305. dat[i] = atoi(argv[i]);
  306. return gs_genMML( sqr, bufSiz, buf, 0x400131, 6, dat );
  307. }
  308. # 307 "gs.c"
  309. int exGs_chorusMacro( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  310. {
  311. char dat[4];
  312. int ret;
  313.  
  314. if ( argc != 1 )
  315. {
  316. MM_setErrMsg(sqr,"[GS] Chorus macro error!");
  317. return((-1));
  318. }
  319.  
  320. dat[0] = atoi(argv[0]);
  321. return gs_genMML( sqr, bufSiz, buf, 0x400138, 1, dat );
  322. }
  323. # 328 "gs.c"
  324. int exGs_chorusPara( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  325. {
  326. int i;
  327. char dat[8];
  328. int ret;
  329.  
  330. if ( argc != 7 )
  331. {
  332. MM_setErrMsg(sqr,"[GS] Chorus parameter error!");
  333. return((-1));
  334. }
  335.  
  336. for ( i = 0; i < 7; ++i )
  337. dat[i] = atoi(argv[i]);
  338. return gs_genMML( sqr, bufSiz, buf, 0x400139, 7, dat );
  339. }
  340.  
  341. int GsPartTbl[16] = {1,2,3,4,5,6,7,8,9,0,10,11,12,13,14,15};
  342.  
  343. int gs_getpart_n( int part )
  344. {
  345. if ( part < 1 || part > 16 )
  346. return (-1);
  347. return (GsPartTbl[part-1]);
  348. }
  349. # 361 "gs.c"
  350. int exGs_rxChannel( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  351. {
  352. int i, part, ch;
  353. char dat[4];
  354. int ret;
  355.  
  356. if ( argc != 2 )
  357. {
  358. _PARA_ERR:
  359. MM_setErrMsg(sqr,"[GS] 'Rx.channel' error!");
  360. return((-1));
  361. }
  362.  
  363. if ( (part = gs_getpart_n(atoi(argv[0]))) < 0 )
  364. goto _PARA_ERR;
  365. ch = atoi(argv[1]);
  366. if ( ch < 0 || ch > 16 )
  367. goto _PARA_ERR;
  368. if ( ch > 0 )
  369. --ch;
  370. else
  371. ch = 0;
  372. dat[0] = ch;
  373. return gs_genMML( sqr, bufSiz, buf, ((0x401002)+((part)<<8)), 1, dat );
  374. }
  375. # 393 "gs.c"
  376. int exGs_assignMode( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  377. {
  378. int i, part;
  379. char dat[4];
  380. int ret;
  381.  
  382. if ( argc != 2 )
  383. {
  384. _PARA_ERR:
  385. MM_setErrMsg(sqr,"[GS] 'Assign mode' error!");
  386. return((-1));
  387. }
  388.  
  389. if ( (part = gs_getpart_n(atoi(argv[0]))) < 0 )
  390. goto _PARA_ERR;
  391. dat[0] = atoi(argv[1]);
  392. return gs_genMML( sqr, bufSiz, buf, ((0x401014)+((part)<<8)), 1, dat );
  393. }
  394. # 14 "gs_cc.c"
  395. int exGs_mod( char *sqr, unsigned int bufSiz, char *buf, int argc, char **argv )
  396. {
  397. int part, v;
  398. char dat[16];
  399. int ret;
  400.  
  401. if ( argc != 12 )
  402. {
  403. _PARA_ERR:
  404. MM_setErrMsg(sqr,"[GS] 'MOD control' error!");
  405. return((-1));
  406. }
  407.  
  408. if ( (part = gs_getpart_n(atoi(argv[0]))) < 0 )
  409. goto _PARA_ERR;
  410.  
  411.  
  412. v = atoi(argv[1]);
  413. if ( v